import pandas as pd
import sqlite3
from datetime import datetime

def process_order_type(row):
    if row['order_type'] == 1:
        return '正常'
    elif row['order_type'] == 3:
        return '直营店'
    elif row['order_type'] == 2:
        if row['order_used_type'] == 1:
            return '首批配货'
        elif row['order_used_type'] == 2:
            return '首批大机器'
        elif row['order_used_type'] == 3:
            return '翻新机器'
        elif row['order_used_type'] == 4:
            return '其他'
        elif row['order_used_type'] == 5:
            return '首批小机器'
    return '未知'

def main():
    # 读取Excel文件
    df = pd.read_excel(r'C:\Users\Administrator\Desktop\订单表查询.xlsx', header=0)
    
    # 处理日期格式
    df['日期'] = pd.to_datetime(df['日期']).apply(lambda x: x.strftime('%Y%m%d'))
    
    # 设置来源为2
    df['来源'] = 2
    
    # 新增业务类型列
    df['业务类型'] = df.apply(process_order_type, axis=1)
    
    # 选择需要导入数据库的列
    df = df[['门店编号', '日期', '订单ID', '订单编号', '订单金额', '业务类型', '来源']]
    
    # 处理日期格式
    df['日期'] = pd.to_datetime(df['日期']).apply(lambda x: x.strftime('%Y%m%d'))
    
    # 设置来源为2
    df['来源'] = 2
    
    # 新增业务类型列（需要从Excel中读取order_type和order_used_type列来生成业务类型）
    # 由于我们只读取了部分列，这里需要重新读取Excel文件获取order_type和order_used_type列
    df_excel = pd.read_excel(r'C:\Users\Administrator\Desktop\订单表查询.xlsx', header=0)
    df['业务类型'] = df_excel.apply(process_order_type, axis=1)
    
    # 使用pandas的to_sql方法将数据导入数据库
    conn = sqlite3.connect(r'C:\Users\Administrator\OneDrive\Database\STORE_SOLD.db')
    df.to_sql('store_sold', conn, if_exists='append', index=False)
    conn.close()
    print('数据已成功导入数据库。')

if __name__ == '__main__':
    main()